Instant messaging provides real-time communication between two or more users over a communication system. The communication is primarily text-based but can also involve communication based on file transfer and selectable hyperlinks etc. In order to engage in instant messaging, each user executes a client at a user device in the communication system. The client is a piece of software which is distributed to the users and which, when executed at a user device in the communication system, allows the user to engage in instant messaging over the communication system. Users can engage in instant messaging conversations over the communication system in which instant messages are transmitted between them. An instant messaging communication session between the users' respective user devices may be established and the messages may be transmitted between the user devices in the instant messaging communication session via a communication network of the communication system. The instant messaging conversation may include two or more users and the instant messaging communication session may include two or more user devices.
As an example, a first user at a first user device executing a first client may engage in an instant messaging conversation with a second user at a second user device executing a second client. Messages can be transmitted in both directions between the first and second clients in an instant messaging communication session between the first and second devices. The transmitted messages constitute a temporal sequence of messages. The first user can input a text message to a first client executed at his user device and the first client can transmit the text as a message to a second client at the second user device. The second client can interpret the instant message and display the text message to the second user.
During the conversation, the first user can also select an option presented by the first client to transfer a file to the second user and the first client can transmit a notification message in the instant messaging communication session to notify the second user of the file transfer. The file may be a media file such as an audio file, video file or (static/still) image file. Transmission of the file itself may begin automatically or may begin in response to the second user selecting an option to accept the file transfer. Once transmitted, the second user may select an option to save or open the transmitted file, for instance an option to play a media file in a media application executed on the second device.
The time taken for the transmission of messages which contain only text over the communication system in the instant messaging communication session is short enough (e.g. ≤2 seconds) for the users to perceive the communication as occurring in real-time and to be able to maintain an interactive conversation; messages containing media files may take longer due to their increased bit-size. The clients at the first and second user devices can store the instant messages that have been transmitted (and received) during the conversation. In this way, the first client can maintain a conversation history at the first user device of instant messages sent in conversations in which the first user has engaged. This allows the first user to retrieve instant messages from previous conversations at the first user device. Similarly, the second client can maintain a conversation history at the second user device of instant messages sent in conversations in which the second user has engaged. This allows the second user to retrieve instant messages from previous conversations at the second user device. The conversation history may be displayed by displaying transmitted and received messages in sequence (that is, according to the temporal order in which they were transmitted and received). The conversation histories can include file transfers which occurred in past and present instant messaging communication sessions.